//
// Copyright (c) 2009 All Right Reserved
//
// vl
//
// 2009-01-01
// Contains ...
using System;
using JetBrains.Annotations;
namespace LargoCommon.Music
{
///
/// Musical Engine.
///
[Serializable]
public sealed class MusicalRules {
#region Properties
///
/// Gets or sets a value indicating whether [individualize melodic voices].
///
///
/// True if [individualize melodic voices]; otherwise, false.
///
public bool IndividualizeMelodicVoices { get; set; }
///
/// Gets RuleHarmonicCover.
///
/// Property description.
public float RuleHarmonicCover { get; private set; }
///
/// Gets RuleFreeBand.
///
/// Property description.
public float RuleFreeBand { get; private set; }
///
/// Gets RuleImpulseCollisions.
///
/// Property description.
public float RuleImpulseCollisions { get; private set; }
///
/// Gets RuleAmbitChange.
///
/// General musical property.
public float RuleAmbitChange { get; private set; }
///
/// Gets RuleMelodicCollisions.
///
/// General musical property.
public float RuleMelodicCollisions { get; private set; }
///
/// Gets RuleSimpleHarmony.
///
/// Property description.
public float RuleSimpleHarmony { get; private set; }
#endregion
#region Private properties
///
/// Gets or sets name of the rule-set.
///
/// Property description.
// ReSharper disable once UnusedAutoPropertyAccessor.Local
private string Name { [UsedImplicitly] get; set; }
/* Unused musical rules
///
/// Gets or sets RuleParallelConnections.
///
/// Property description.
//// private float RuleParallelConnections { [UsedImplicitly] get; set; }
///
/// Gets or sets RuleMusicalImpulse.
///
/// Property description.
//// private float RuleMusicalImpulse { [UsedImplicitly] get; set; }
*/
///
/// Gets or sets RandomEffect.
///
/// Property description.
// ReSharper disable once UnusedAutoPropertyAccessor.Local
private float RandomEffect { [UsedImplicitly] get; set; }
#endregion
#region Public static methods
///
/// Gets NewStandardEngine.
///
/// Returns value.
public static MusicalRules NewStandardMusicalRules() {
var me = new MusicalRules
{
Name = "Standard",
RandomEffect = 0,
RuleFreeBand = 1,
RuleHarmonicCover = 1,
RuleImpulseCollisions = 1,
RuleMelodicCollisions = 1,
RuleAmbitChange = 0,
//// RuleParallelConnections = 1,
RuleSimpleHarmony = 0
//// RuleMusicalImpulse = 0
};
return me;
}
///
/// Gets NewStandardEngine.
///
/// Returns value.
public static MusicalRules NewSimpleHarmonicMusicalRules() {
var me = new MusicalRules
{
Name = "Simple Harmony",
RandomEffect = 0,
RuleFreeBand = 1,
RuleHarmonicCover = 0,
RuleImpulseCollisions = 0,
RuleMelodicCollisions = 0,
RuleAmbitChange = 0,
//// RuleParallelConnections = 0,
RuleSimpleHarmony = 1
//// RuleMusicalImpulse = 0
};
return me;
}
///
/// Gets NewStandardEngine.
///
/// Returns value.
public static MusicalRules NewMusicalImpulseRules() {
var me = new MusicalRules
{
Name = "Simple Harmony",
RandomEffect = 0,
RuleFreeBand = 1,
RuleHarmonicCover = 1,
RuleImpulseCollisions = 0,
RuleMelodicCollisions = 0,
RuleAmbitChange = 0,
//// RuleParallelConnections = 0,
RuleSimpleHarmony = 0
//// RuleMusicalImpulse = 1
};
return me;
}
#endregion
}
}